package com.moli.iov.handle.real.service;

import com.moli.iov.handle.real.model.RealTimeReqDto;
import com.moli.iov.protocol.model.dto.realtime.RealTimeInfoDto;
import com.moli.iov.protocol.model.realtime.RealTimeInfo;
import com.moli.iov.protocol.model.realtime.RealTimeInfoReq;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @ClassName RealTimeInfoService
 * @Description 实时信息服务类
 * @Author 李伟松
 * @CreateDate 2019-02-26 下午 5:24
 * @UpdateDate 2019-02-26 下午 5:24
 * @Version 1.0
 */
public interface RealTimeInfoService {

    List<RealTimeInfo> list(RealTimeReqDto realTimeReqDto);

    Map<String,RealTimeInfo> map(RealTimeReqDto realTimeReqDto);

    /**
     *@Param: [vinList]
     *@Return: java.util.Map<java.lang.String,com.moli.iov.protocol.model.dto.realtime.RealTimeInfoDto>
     *@Description 根据车架号集合获取车辆实时信息
     *@Author 李伟松
     *@CreateDate 2019-02-26 下午 5:42
     */
    Map<String,RealTimeInfoDto> getRealTimeInfoDtoMap(List<String> vinList);

    /**
     *@Param: locationStateForCacheMap：存放定位状态]
     *@Return: java.util.Map<java.lang.String,com.moli.iov.protocol.model.dto.realtime.RealTimeInfoDto>
     *@Description 将报文解析后存入缓存
     *@Author 李伟松
     *@CreateDate 2019-02-26 下午 5:42
     */
    void putCache(Map<String,String> locationStateForCacheMap,Map<String,String> dynamicStateForCacheMap);

    void batchSave(List<RealTimeInfo> list, Set<String> vins);
}
